package com.heu.blood.match.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 
 * 
 * @author lyj
 * @email lyj@heu.com
 * @date 2023-06-16 00:23:13
 */
@Data
@TableName("blood_match")
public class BloodMatchEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 
	 */
	@TableId(value = "id", type = IdType.AUTO)
	private Long id;
	/**
	 * 输血申请单号
	 */
	private String applicationId;
	/**
	 * 血液id
	 */
	private String bloodId;
	/**
	 * 患者编号
	 */
	private String patientId;
	/**
	 * 创建时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
	@TableField(value = "gmt_create", fill = FieldFill.INSERT) // 创建注解
	private Date gmtCreate;

	/**
	 * 修改时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
	@TableField(value = "gmt_modified", fill = FieldFill.INSERT_UPDATE) // 更新注解
	private Date gmtModified;
	/**
	 * 单据号
	 */
	private String matchId;
	/**
	 * 患者血液样本编号
	 */
	private String bloodSampleInfoTransfusionId;
	/**
	 * 配血日期
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
	private Date matchTime;
	/**
	 * 配血人
	 */
	private String matchPeople;
	/**
	 * 配血人工号
	 */
	private String matchPeopleNumber;
	/**
	 * 配血基本信息登记人
	 */
	private String matchRegister;
	/**
	 * 配血基本信息登记人工号
	 */
	private String matchRegisterNumber;
	/**
	 * 配血基本信息登记时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
	private Date matchRegisterTime;
	/**
	 * 结果审核人
	 */
	private String reviewerName;
	/**
	 * 结果审核人工号
	 */
	private String reviewerNumber;
	/**
	 * 结果审核时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
	private Date reviewTime;
	/**
	 * 主侧结果（无凝集无溶血、无凝集有溶血、有凝集
		无溶血、
		有凝集
		有溶血）
	 */
	private String mainSideResult;
	/**
	 * 次测结果（无凝集无溶血、无凝集有溶血、有凝集
		无溶血、
		有凝集
		有溶血）
	 */
	private String primarySideResult;
	/**
	 * 通过写通过，否则写原因
	 */
	private String state;
	/**
	 * 费用
	 */
	private BigDecimal matchPrice;
	/**
	 * 配血方法
	 */
	private String matchMethod;
	/**
	 * 血袋abo血型
	 */
	private String aboTypeBlood;
	/**
	 * 血袋rh血型
	 */
	private String rhTypeBlood;
	/**
	 * 血袋血液成分
	 */
	private String bloodTypeBag;
	/**
	 * 病人abo血型
	 */
	private String aboTypePatient;
	/**
	 * 病人rh血型
	 */
	private String rhTypePatient;
	/**
	 * 病人申请血液成分
	 */
	private String bloodTypePatient;
	/**
	 * 配血状态
	 */
	private String bloodMatchStatus;
	/**
	 * 交叉配血审核状态
	 */
	@TableField(value = "approval_status")
	private String approvalStatus;
	/**
	 * 1代表展示，0代表不展示
	 */
	@TableField(value = "if_show", fill = FieldFill.INSERT) // 创建注解
	private Integer ifShow;
	/**
	 *  1代表已删除，0代表未删除
	 */
	@TableLogic(value = "0", delval = "1")
	@TableField(value = "is_deleted", fill = FieldFill.INSERT) // 创建注解
	private Integer isDeleted;

	/**
	 * 患者姓名
	 */
	private String patientName;

	/**
	 * 血液申请项对应的id，即配给了那个申请详情
	 */
	private Long bloodApplicationItemId;

	/**
	 * 配血方法盐水法
	 */
	private String matchMethodSalt;
	/**
	 * 盐水法主侧结果（无凝集无溶血、无凝集有溶血、有凝集
	 无溶血、
	 有凝集
	 有溶血）
	 */
	private String mainSideResultSalt;
	/**
	 * 盐水法次测结果（无凝集无溶血、无凝集有溶血、有凝集
	 无溶血、
	 有凝集
	 有溶血）
	 */
	private String primarySideResultSalt;
	/**
	 * 配血人盐水法
	 */
	private String matchPeopleSalt;

	/**
	 * 血液量
	 */
	private BigDecimal bloodCount;

	/**
	 * 计量单位-ml等
	 */
	private String measurementUnit;

}
